package com.ysx.teacher.day20210908.extendss.ch07;

public class Ch01 {

    public static void main(String[] args) {
        // 有1、2、3 、4个数字，能组成多少个互不相同且无重复数字的三位数？都是多少？

        // 123 321 111 321

        // 已知 百位 2 十位为1 个位为4   --> 214

        /*int b=2;
        int s=1;
        int g=4;

        int sum =b*100+s*10+g*1;*/

        //已知4个数字   1、2、3、4
        int[] array = {1,2,3,4};

        int changdu=4*4*4;
        int[] all= new int[changdu];

        int length=array.length;

        int counter=0;
        for(int bai=0;bai<length;bai++){
            int baiwei=array[bai];
            for(int shi=0;shi<length;shi++){
                int shiwei=array[shi];
                for(int ge=0;ge<length;ge++){
                    int gewei=array[ge];
                    int sum =baiwei*100+shiwei*10+gewei*1;
                    all[counter]=sum;
                    counter++;
                }
            }
        }

        System.out.println(all);
        // 1 找出所有百位、十位、个位可能的数

        for(int index=0;index<all.length;index++){
            int num=all[index];
            int beiwei=num/100;
            int shiwei=num/10%10;
            int gewei=num%10;
            if(beiwei == shiwei || beiwei == gewei || shiwei ==gewei ){
                all[index]=0;
                changdu--;
            }
        }

        int[] rs = new int[changdu];

        int xiabiao=0;
        for(int index=0;index<all.length;index++){
            int num= all[index];
            if(num!=0){
                rs[xiabiao]=num;
                xiabiao++;
            }
        }
        System.out.println(rs);

        // 2 分别计算出这3位数的最终结果

        // 3 判断所有的这些结果是否有重复

        //System.out.println(sum);
    }
}
